ESP8266NodeMCU+MAX7219八位数码管制作联网时钟【Arduino】 |
您所在的位置:网站首页 › ESP8266-12s wifi时钟 › ESP8266NodeMCU+MAX7219八位数码管制作联网时钟【Arduino】 |
其实这个网上有许多教程,我自己跟着改了改就写出来了 先上源码 #include #include #include #include ESP8266WiFiMulti wifiMulti; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "ntp.aliyun.com"); //模块引脚定义 #define CLK D4 #define CS D3 #define DIN D2 int sl = 0,sh = 0,mintl = 0,minth = 0,hrl = 0,hrh = 0,i =0; //位写入 void Write_Max7219_byte(unsigned char DATA) { unsigned char i; for(i=8;i>=1;i--) { digitalWrite(CLK,LOW); if(DATA&0X80) { digitalWrite(DIN,HIGH); } else { digitalWrite(DIN,LOW); } DATA= 10) { mintl = 0; minth++; if(minth >= 6) { minth = 0; hrl++; if(hrl >= 10) { hrl = 0; hrh++; if(hrh >= 3) { hrh = 0; } Write_Max7219(6,mintl); } Write_Max7219(5,hrl); } Write_Max7219(4,minth); } Write_Max7219(3,mintl); } Write_Max7219(2,sh); } Write_Max7219(1,sl); } }这里先写高位再写低位,具体如下: 高位数据: 0x01:为第一位数码管 0x02:为第二位数码管 0x03:为第三位数码管 0x04:为第四位数码管 0x05:为第五位数码管 0x06:为第六位数码管 0x07:为第七位数码管 0x08:为第八位数码管 0x09:译码,这里的低位数据输入的二进制为1的位就是进行译码的位, 比如0xFF表示全部译码,而0x2a则是显示第2、4、6位数码管 0x0a:亮度设置,后跟的数据就是亮度值 0x0b:扫描界限,就是要显示的数码管,0x07为全部显示 0x0c:普通模式与掉电模式选择,0x00为掉电模式,0x01为普通显示模式。掉电模式下不会显示 0x0f:正常显示与测试模式选择,0x00为正常显示,0x01为测试模式,此时全部数码管亮起 低位数据: 为BCD译码模式的时候 0x00-0x09为显示的数字 0x0a到0x0f为其他的一些字符(好像是没译码的),具体请大家研究 本人初二,这是我第一次写文章,有很多不足,请大家谅解 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |